package com.hukun.ssm1110.controller;


import com.hukun.ssm1110.entity.Article;
import com.hukun.ssm1110.entity.Bill;
import com.hukun.ssm1110.entity.User;
import com.hukun.ssm1110.mapper.ArticleMapper;
import com.hukun.ssm1110.mapper.BillMapper;
import com.hukun.ssm1110.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.Calendar;
import java.util.List;

@Controller  //页面的控制注解 表示控制页面跳转
public class LoginController {

    @Autowired
    ArticleMapper articleMapper;

    //GET Mapping 映射  里面的参数 用户访问的名称路径 实时访问
    @GetMapping("/toLoginPage")
    //控制页面跳转返回值必须是string 指的是 页面名称
    public String toLoginPage(Model model) {
        //model 把后台数据传到前台页面 这个model数据模型对象始终放在服务器容器中
//        Article article = new Article(null, "Spring", "");
//        List<Article> articles = articleMapper.getArticles(article);
//        model.addAttribute("articles", articles);
        return "login"; //去找templates 下面的login.html
    }


    @Autowired
    UserMapper userMapper;

    //去登陆逻辑 和数据库相关的操作
    @RequestMapping("/tologin")
    //前台传递数据看 html input name 在后台实体类属性里有对应
    public String toLogin(User user, Model model, HttpServletRequest request) {
        HttpSession session = request.getSession();
        User loginUser = userMapper.Login(user);
        //登录成功逻辑   //model 把后台数据传到前台页面 这个model数据模型对象始终放在服务器容器中
        if (loginUser != null) {
            //返回页面的内容
            session.setAttribute("loginUser", loginUser);

            return "index";
        }
        //登录失败的逻辑
        else {
            //返回页面的内容
            model.addAttribute("errorInfo", "用户名密码错误请重新登录");
            return "login";
        }
    }


    @GetMapping("/logout")
    public String logout(HttpServletRequest request) {
        //清除登录信息
        HttpSession session = request.getSession();
        session.setAttribute("loginUser", null);
        return "login";
    }

    //GET Mapping 映射  里面的参数 用户访问的名称路径
    @GetMapping("/index")
    //控制页面跳转返回值必须是string 指的是 页面名称
    public String toIndex(Model model) {
        //model 把后台数据传到前台页面 这个model数据模型对象始终放在服务器容器中
        model.addAttribute("currentYear", "sadsafsdgsdgsdgd");
        return "index"; //去找templates 下面的login.html
    }


}
